home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Atari Forever 4
/
Atari Forever 4.zip
/
Atari Forever 4.iso
/
SERIE_DM
/
DM_154
/
DM_154.MSA
/
OVERSMP2.LST
< prev
next >
Wrap
File List
|
1986-02-06
|
2KB
|
87 lines
' Zweifach-Oversampling Sample Converter
' konvertiert z.B. 16KHz -> 8Khz
'
SETCOLOR 0,1
SPOKE &H484,6
GRAPHMODE 1
DEFFILL 1,2,4
PBOX 0,0,639,399
DEFTEXT 1,0,0,26
TEXT 150,320," Oversampler "
PRINT AT(30,3);" LOAD SAMPLE FILE "
FILESELECT "a:\*.*","",n$
IF n$=""
EDIT
ENDIF
t=1
ok=0
REPEAT
IF INSTR(t+1,n$,"\")=0
ok=1
tr$=LEFT$(n$,t)
nm$=RIGHT$(n$,LEN(n$)-t)
ELSE
t=t+1
ENDIF
UNTIL ok
maxlen=FRE(0)-5000
DIM smp%(maxlen/4)
OPEN "i",#1,n$
l=LOF(#1)
CLOSE
IF l>maxlen
ALERT 3,"Out of Memory",1," shit! ",d!
EDIT
ENDIF
'
offset=LPEEK(ARRPTR(smp%()))+4 !⇦ muß das +4 sein?
BLOAD n$,offset
'
DEFTEXT 1,0,0,6
TEXT 150,341,"File: "+n$
'
an=0
rng=l
@welle(an,rng)
ALERT 2," Convert from 16KHz | to 8KHz ? ",1,"Sure|Oops!",d%
IF d%=1
@convert(an,rng)
@welle(an,INT(rng/2))
PRINT AT(25,2);" SAVE converted sample: "
FILESELECT tr$+"*.*",nm$,n$
IF n$<>""
BSAVE n$,offset,rng/2
ENDIF
ENDIF
EDIT
'
'
PROCEDURE welle(anf,rg)
DEFLINE 1,1,0,0
DEFFILL 1,2,4
PBOX 0,272,639,288
DEFFILL 1,0,0
PBOX 0,0,639,255
PLOT 0,128
FOR i=0 TO 639
p=INT(i*rg/640)
a=PEEK(offset+anf+p)
DRAW TO i,a
NEXT i
PRINT AT(1,17);SPC(80);
DEFLINE 2,1,1,1
LINE 0,263,639,263
PRINT AT(3,17);anf
PRINT AT(74,17);anf+rg
PRINT AT(37,17);rg
RETURN
'
PROCEDURE convert(anf,rg)
LOCAL i%,w%,adr%
FOR i%=0 TO rg-1 STEP 2
adr%=offset+i%
w%=PEEK(adr%)+PEEK(adr%+1)
POKE offset+i%/2,w%/2
NEXT i%
RETURN